//package cn.jc.util;
//
//import java.io.UnsupportedEncodingException;
//import java.math.BigDecimal;
//import java.net.URLDecoder;
//import java.net.URLEncoder;
//import java.text.DateFormat;
//import java.text.ParseException;
//import java.text.SimpleDateFormat;
//import java.util.ArrayList;
//import java.util.Calendar;
//import java.util.Date;
//import java.util.List;
//import java.util.Locale;
//import java.util.regex.Matcher;
//import java.util.regex.Pattern;
//
//import javax.servlet.http.HttpServletRequest;
//
//import org.apache.commons.codec.binary.Base64;
//import org.apache.commons.logging.Log;
//import org.apache.commons.logging.LogFactory;
//
//public class StringUtils {
//
//	public static void main(String args[]){
//		System.out.println(DatereplaceChar("2010-06-07 19:00"));
//	}
//	public static String DatereplaceChar(String date){
//		return date.replaceAll("-", "_").replaceAll(":", "_").replaceAll(" ", "_");
//	}
//    private static final Log log = LogFactory.getLog(StringUtils.class);
//
//    public static String replaceChar(int istr, String strchar) {
//        return String.valueOf(istr).replaceAll(strchar, "x");
//    }
//
//    /**
//     * check String is null or not;
//     * 
//     * @param checkStr
//     * @return boolean
//     */
//    public static boolean isNull(String checkStr) {
//        return checkStr == null || checkStr.trim().length() == 0 || checkStr.trim().equalsIgnoreCase("null");
//    }
//
//    public static boolean isNotNull(String checkStr) {
//        return !isNull(checkStr);
//    }
//
//    /**
//     * if input string is null return "".
//     * 
//     * @param input
//     * @return
//     */
//    public static String formatNullString(String input) {
//        if (isNull(input)) {
//            return "";
//        }
//        return input;
//    }
//
//    /**
//     * parse String to int
//     * 
//     * @param intStr
//     * @param defaultInt
//     * @return int
//     */
//    public static int parseInt(String intStr, int defaultInt) {
//        try {
//            return Integer.parseInt(intStr);
//        } catch (Exception e) {
//            return defaultInt;
//        }
//    }
//    
//    public static double parseDouble(String intStr, double defaultInt) {
//        try {
//            return Double.parseDouble(intStr);
//        } catch (Exception e) {
//            return defaultInt;
//        }
//    }
//
//    /**
//     * parse String to int default is 0
//     * 
//     * @param intStr
//     * @return int
//     */
//    public static int parseInt(String intStr) {
//        return parseInt(intStr, 0);
//    }
//    
//    /**
//     * parse String to long
//     * 
//     * @param longStr
//     * @param defaultLong
//     * @return long
//     */
//    public static long parseLong(String longStr, long defaultLong) {
//        try {
//            return Long.parseLong(longStr);
//        } catch (Exception e) {
//            return defaultLong;
//        }
//    }
//
//    /**
//     * parse String to long default is 0
//     * 
//     * @param longStr
//     * @return long
//     */
//    public static long parseLong(String longStr) {
//        return parseLong(longStr, 0);
//    }
//
//    /**
//     * check String is int
//     * 
//     * @param str
//     * @return boolean
//     */
//    public static boolean isInt(String str) {
//        Pattern pattern = Pattern.compile("(0|[1-9][0-9]*|-[1-9][0-9]*)");
//        Matcher matcher = pattern.matcher(str);
//        return matcher.matches();
//    }
//
//    /**
//     * get substring term from src
//     * 
//     * @param src
//     * @param term
//     * @return String
//     */
//    public static String subBefore(String src, String term) {
//        if (src == null || term == null) {
//            return null;
//        } else {
//            int index = src.indexOf(term);
//            return index >= 0 ? src.substring(0, index) : src;
//        }
//    }
//
//    /**
//     * get substring after term from src
//     * 
//     * @param src
//     * @param term
//     * @return string
//     */
//    public static String subAfter(String src, String term) {
//        if (src == null || term == null) {
//            return null;
//        } else {
//            int index = src.indexOf(term);
//            return index >= 0 ? src.substring(index + term.length()) : src;
//        }
//    }
//
//    /**
//     * get substring last before term from src
//     * 
//     * @param src
//     * @param term
//     * @return string
//     */
//    public static String subLastBefore(String src, String term) {
//        if (src == null || term == null) {
//            return null;
//        } else {
//            int index = src.lastIndexOf(term);
//            return index >= 0 ? src.substring(0, index) : src;
//        }
//    }
//
//    /**
//     * get substring last after term from src
//     * 
//     * @param src
//     * @param term
//     * @return string
//     */
//    public static String subLastAfter(String src, String term) {
//        if (src == null || term == null) {
//            return null;
//        } else {
//            int index = src.lastIndexOf(term);
//            return index >= 0 ? src.substring(index + term.length()) : src;
//        }
//    }
//
//    public static String left(String str, int len) {
//        if (str == null) {
//            return null;
//        }
//        if (len < 0) {
//            return "";
//        }
//        if (str.length() <= len) {
//            return str;
//        } else {
//            return str.substring(0, len);
//        }
//    }
//
//    public static String right(String str, int len) {
//        if (str == null) {
//            return null;
//        }
//        if (len < 0) {
//            return "";
//        }
//        if (str.length() <= len) {
//            return str;
//        } else {
//            return str.substring(str.length() - len);
//        }
//    }
//
//    /**
//     * encode url
//     * 
//     * @param src
//     * @return String
//     */
//    public static String encodeURL(String src) {
//        String result = null;
//        try {
//            if (!StringUtils.isNull(src)) {
//                result = URLEncoder.encode(src, "UTF-8");
//            } else {
//                result = src;
//            }
//        } catch (UnsupportedEncodingException e) {
//            e.printStackTrace();
//        }
//        return result;
//    }
//
//    /**
//     * decode url
//     * 
//     * @param src
//     * @return String
//     */
//    public static String decodeURL(String src) {
//        String result = null;
//        try {
//            if (!StringUtils.isNull(src)) {
//                result = URLDecoder.decode(src, "UTF-8");
//            } else {
//                result = src;
//            }
//        } catch (UnsupportedEncodingException e) {
//            e.printStackTrace();
//        }
//        return result;
//    }
//
//    public static String getUserInput(HttpServletRequest req, String sInput) {
//        String ts = req.getParameter(sInput);
//        try {
//            if (StringUtils.isNull(ts)) {
//                return null;
//            }
//            String tempString = (new String(ts.getBytes("ISO8859-1"), "UTF-8"));
//            if (tempString.indexOf("?") != -1) { // if convert failed
//                req.setCharacterEncoding("GB2312");
//                ts = req.getParameter(sInput);
//            } else {
//                ts = tempString; // convert success
//            }
//        } catch (Exception e) {
//        }
//        return ts;
//    }
//
//    /**
//     * 
//     * @param input
//     * @return
//     */
//    public static String formatXML(String input) {
//        if (input == null) {
//            return null;
//        }
//        String res = input;
//        res = res.replaceAll("&", "&amp;");
//        res = res.replaceAll("<", "&lt;");
//        res = res.replaceAll(">", "&gt;");
//        res = res.replaceAll("'", "&apos;");
//        res = res.replaceAll("\"", "&quot;");
//        res = res.replaceAll("\n", "<br/>");
//        res = res.replaceAll("\r", "");
//        res = res.replaceAll(" ", "&nbsp;");
//        return res;
//    }
//
//    public static String formatUploadXML(String input) {
//        if (input == null) {
//            return null;
//        }
//        String res = input;
//        res = res.replaceAll("&amp;", "&");
//        res = res.replaceAll("&lt;", "<");
//        res = res.replaceAll("&gt;", ">");
//        res = res.replaceAll("&apos;", "'");
//
//        res = res.replaceAll("&", "&amp;");
//        res = res.replaceAll("<", "&lt;");
//        res = res.replaceAll(">", "&gt;");
//        res = res.replaceAll("'", "&apos;");
//        return res;
//    }
//
//    public static String formatAndChar(String input) {
//        if (input == null) {
//            return null;
//        }
//        String res = input;
//        res = res.replaceAll("&amp;", "&");
//        return res;
//    }
//
//    public static String formatAndToAmpChar(String input) {
//        if (input == null) {
//            return null;
//        }
//        String res = input;
//        res = res.replaceAll("&", "&amp;");
//        return res;
//    }
//
//    /**
//     * oracle 分页查询
//     * 
//     * @param sql
//     * @param hasOffset
//     * @return
//     */
//    public static String getLimitString(String sql, boolean hasOffset) {
//        StringBuffer pagingSelect = new StringBuffer(sql.length() + 100);
//        if (hasOffset) {
//            pagingSelect.append("select * from ( select row_.*, rownum rownum_ from ( ");
//        } else {
//            pagingSelect.append("select * from ( ");
//        }
//        pagingSelect.append(sql);
//        if (hasOffset) {
//            pagingSelect.append(" ) row_ where rownum <= ?) where rownum_ > ?");
//        } else {
//            pagingSelect.append(" ) where rownum <= ?");
//        }
//        return pagingSelect.toString();
//    }
//
//    public static String getCurDay() {
//        Date d = new Date();
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//        String s = sdf.format(d);
//        return s;
//    }
//
//    /**
//     * 
//     * @return String
//     */
//    public static String format() {
//        return format("yyyy-MM-dd HH:mm:ss");
//    }
//
//    /**
//     * 
//     * @param pattern
//     * @return string
//     */
//    public static String format(String pattern) {
//        return format(pattern, new Date());
//    }
//
//    /**
//     * default pattern is yyyy-MM-dd HH:mm:ss
//     * 
//     * @param date
//     * @return
//     */
//    public static String format(Date date) {
//        return format("yyyy-MM-dd HH:mm:ss", date);
//    }
//
//    /**
//     * 
//     * @param pattern
//     * @param date
//     * @return string
//     */
//    public static String format(String pattern, Date date) {
//        if (date == null) {
//            return null;
//        } else {
//            return new SimpleDateFormat(pattern).format(date);
//        }
//    }
//
//    /**
//     * 
//     * @param pattern
//     * @param locale
//     * @param text
//     * @return
//     */
//    public static Date parse(String pattern, Locale locale, String text) {
//        SimpleDateFormat dateFormat = new SimpleDateFormat(pattern, locale);
//        try {
//            if (text != null && text.trim().length() != 0) {
//                return dateFormat.parse(text);
//            } else {
//                return new Date();
//            }
//        } catch (ParseException ex) {
//            return new Date();
//        }
//    }
//
//    /**
//     * 
//     * @param pattern
//     * @param text
//     * @return Date
//     */
//    public static Date parse(String pattern, String text) {
//
//        SimpleDateFormat dateFormat = new SimpleDateFormat(pattern);
//        try {
//            if (text != null && text.trim().length() != 0) {
//                return dateFormat.parse(text);
//            } else {
//                return new Date();
//            }
//        } catch (ParseException ex) {
//            return new Date();
//        }
//    }
//
//    /**
//     * pattern is yyyy-MM-dd HH:mm:ss
//     * 
//     * @param text
//     * @return Date
//     */
//    public static Date parse(String text) {
//        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        try {
//            if (text != null && text.trim().length() != 0) {
//                return dateFormat.parse(text);
//            } else {
//                return new Date();
//            }
//        } catch (ParseException ex) {
//            return new Date();
//        }
//    }
//    
//    public static String formatYYMMDD(Date date) {
//        return format("yyyy-MM-dd", date);
//    }
//    
//    public static int reverseBytes(int i) {
//        return ((i >>> 24)           ) |
//               ((i >>   8) &   0xFF00) |
//               ((i <<   8) & 0xFF0000) |
//               ((i << 24));
//    }
//    
//    public static String subString(String begin,String end,String src){
//    	return StringUtils.subLastBefore(StringUtils.subAfter(src, begin),end);
//    }
//    
//    /**
//     * 
//     * @param src
//     * @return byte[]
//     */
//    public static byte[] encodeBase64(byte[] src) {
//        return Base64.encodeBase64(src);
//    }
//
//    /**
//     * 
//     * @param src
//     * @return byte[]
//     */
//    public static byte[] encodeBase64(String src) {
//        return encodeBase64(src.getBytes());
//    }
//
//    /**
//     * 
//     * @param src
//     * @return byte[]
//     */
//    public static byte[] decodeBase64(byte[] src) {
//        return Base64.decodeBase64(src);
//    }
//
//    /**
//     * 
//     * @param src
//     * @return byte[]
//     */
//    public static byte[] decodeBase64(String src) {
//        return decodeBase64(src.getBytes());
//    }
//    
//	/**
//	 * 获取页面传来的值 
//	 * @param request
//	 * @param paraName
//	 * @param defaultValue
//	 * @return 
//	 */
//	public static String getParameter(HttpServletRequest request,
//			String paraName, String defaultValue) {
//		String param = request.getParameter(paraName);
//		if (null == param || "".equals(param))
//			return defaultValue;
//		return param;
//	}
//	
//	
//	public static List getAllDay(String start, String end) {
//		List returnList=new ArrayList();
//		if(StringUtils.isNull(start)||StringUtils.isNull(end)) 
//		{
//			returnList.add(StringUtils.getCurDay());
//		}else
//		{
//			Calendar scale=Calendar.getInstance();
//			scale.setTime(DateUtil.getDate("yyyy-MM-dd", start));
//			Calendar ecale=Calendar.getInstance();
//			ecale.setTime(DateUtil.getDate("yyyy-MM-dd",end));
//			while(scale.getTimeInMillis()<=ecale.getTimeInMillis())
//			{
//				returnList.add(DateUtil.format("yyyy-MM-dd", scale.getTime()));
//				scale.add(Calendar.DAY_OF_YEAR, 1);
//			}
//		}
//		return returnList;
//	}
//	
//	/**
//	 *获取表的 表名称  
//	 * @param startdate
//	 * @param enddate
//	 * @return
//	 */
//	public static List getTableName(String startdate, String enddate) {
//		Calendar scale = Calendar.getInstance();
//		scale.setTime(DateUtil.getDate("yyyy-MM-dd", startdate));
//		scale.set(Calendar.DAY_OF_MONTH, 1);
//		
//		Calendar ecale = Calendar.getInstance();
//		ecale.setTime(DateUtil.getDate("yyyy-MM-dd", enddate));
//		ecale.set(Calendar.DAY_OF_MONTH, 1);
//				
//		int size = 12*(ecale.get(Calendar.YEAR)-scale.get(Calendar.YEAR))+ecale.get(Calendar.MONTH)-scale.get(Calendar.MONTH);
//		List monthlist = new ArrayList();
//		for(int i=0;i<=size;i++){
//			Calendar tmpCal = (Calendar)scale.clone();
//			tmpCal.add(Calendar.MONTH, i);
//			monthlist.add(DateUtil.format("yyyyMM", tmpCal.getTime()));
//		}
//		return monthlist;
//	}
//	
//	
//	public static String getLogTableDate(String postfix){
//		Calendar cale = Calendar.getInstance();
//		cale.setTime(DateUtil.getDate("yyyy-MM-dd", postfix));
//		int dayofweek = cale.get(Calendar.DAY_OF_WEEK);
//		cale.add(Calendar.DAY_OF_MONTH, 1-dayofweek);
//		int year = cale.get(Calendar.YEAR);
//		int month = cale.get(Calendar.MONTH)+1;
//		int day = cale.get(Calendar.DAY_OF_MONTH);
//		
//		String syear = String.valueOf(year);
//		String smonth = String.valueOf(month);
//		String sday = String.valueOf(day);
//		if(month<10){
//			smonth = "0"+smonth;
//		}
//		if(day<10){
//			sday = "0"+sday;
//		}
//		String date = syear+smonth+sday;
//		return date;
//	}
//	
//	/**
//	 * 除法,保留两位
//	 * */
//	public static String divideRate(double d_income,int i_acc){
//		String s_convert = "0.00";
//		try{
//			if(d_income == 0){
//				return "0.00";
//			}
//			double d_convert = 0.00;
//			String s_fee = String.valueOf(d_income);
//			String s_acc = String.valueOf(i_acc);
//			
//			BigDecimal b_acc = new BigDecimal(s_acc);
//			BigDecimal b_fee = new BigDecimal(s_fee);
//				
//			d_convert =  b_fee.divide(b_acc, 2, BigDecimal.ROUND_HALF_UP).doubleValue();
//			//d_convert = mul(d_convert,new Double(100.00).doubleValue());
//			//s_convert = d_convert + "%";
//			s_convert = String.valueOf(d_convert);
//		}catch(Exception ex){
//			return "0.00";
//		}
//
//		return s_convert;
//	}
//	/**
//	 * 除法,保留两位,加百分比%
//	 * */
//	public static String divideTwo(double d_fee,int i_accnew){
//		String s_convert = "0.00";
//		try{
//			double d_acc = new Double(i_accnew).doubleValue();
//			
//			BigDecimal b_acc = new BigDecimal(Double.toString(d_acc));
//			BigDecimal b_fee = new BigDecimal(Double.toString(d_fee));
//				
//			s_convert =  b_fee.divide(b_acc, 2, BigDecimal.ROUND_HALF_UP).toString();
//		}catch(Exception ex){
//			return "0.00";
//		}
//		return s_convert;
//		
//	}
//	/**
//	 * 除法,保留四位,加百分比%
//	 * */
//	public static String divide(int i_fee,int i_acc){
//		String s_convert = "0.00%";
//		try{
//			if(i_fee == 0){
//				return "0.00%";
//			}
//			double d_convert = 0.00;
//			String s_fee = String.valueOf(i_fee);
//			String s_acc = String.valueOf(i_acc);
//			//double d_acc = new Double(i_acc).doubleValue();
//			//System.out.println("---"+d_acc);
//			//double d_fee = new Double(i_fee).doubleValue();
//			//System.out.println("---"+d_fee);
//			
//			BigDecimal b_acc = new BigDecimal(s_acc);
////			System.out.println("==="+b_acc);
//			BigDecimal b_fee = new BigDecimal(s_fee);
////			System.out.println("==="+b_fee);
//				
//			d_convert =  b_fee.divide(b_acc, 2, BigDecimal.ROUND_HALF_UP).doubleValue();
//			d_convert = mul(d_convert,new Double(100.00).doubleValue());
//			s_convert = d_convert + "%";
//		}catch(Exception ex){
//			return "0.00%";
//		}
//		return s_convert;
//	}
//	 public static double mul(double v1, double v2) {
//		  BigDecimal b1 = new BigDecimal(Double.toString(v1));
//		  BigDecimal b2 = new BigDecimal(Double.toString(v2));
//		  return b1.multiply(b2).doubleValue();
//	}
//	 public static String divide(double d_fee,double i_accnew) {
//			String s_convert = "0.00";
//			try{
//				BigDecimal b_acc = new BigDecimal(Double.toString(i_accnew));
//				BigDecimal b_fee = new BigDecimal(Double.toString(d_fee * 100));
//					
//				s_convert =  b_fee.divide(b_acc, 2, BigDecimal.ROUND_HALF_UP).toString();
//			}catch(Exception ex){
//				return "0.00";
//			}
//
//			return s_convert + "%";
//			
//		}
//}
